annotations:
  - border_color: '#808080FF'
    border_style: ''
    color: '#FFFFFFFF'
    line_end: null
    line_start: null
    thickness: 1
    type: line
    x1: -200.0
    y1: -40.0
    x2: -200.0
    y2: -40.0
    z_index: 0
  - border_color: '#00000000'
    border_style: ''
    color: '#808080FF'
    rotation: 0
    text_bold: true
    text_content: |2-


              192.168.1.0/30
    text_font: sans-serif
    text_italic: false
    text_size: 11
    text_unit: pt
    thickness: 1
    type: text
    x1: 0.0
    y1: -40.0
    z_index: 2
  - border_color: '#00000000'
    border_style: ''
    color: '#808080FF'
    rotation: 0
    text_bold: true
    text_content: |2-

           192.168.216.0/24
    text_font: sans-serif
    text_italic: false
    text_size: 11
    text_unit: pt
    thickness: 1
    type: text
    x1: 200.0
    y1: -80.0
    z_index: 5
  - border_color: '#00000000'
    border_style: ''
    color: '#808080FF'
    rotation: 0
    text_bold: true
    text_content: |2-
       192.168.100.254/24 (SW1)
       192.168.255.2/32 (SW2)
       192.168.255.1/32 (R1)
       192.168.10.1/24 ( client)
       192.168.200.1/24 (webserver)
    text_font: sans-serif
    text_italic: false
    text_size: 11
    text_unit: pt
    thickness: 1
    type: text
    x1: -440.0
    y1: 120.0
    z_index: 9
  - border_color: '#00000000'
    border_style: ''
    color: '#808080FF'
    rotation: 0
    text_bold: true
    text_content: |2-
            enable password: cisco
            client: cisco / cisco
            webserver: cisco / cisco
    text_font: sans-serif
    text_italic: false
    text_size: 11
    text_unit: pt
    thickness: 1
    type: text
    x1: -240.0
    y1: 120.0
    z_index: 15
  - border_color: '#00000000'
    border_style: ''
    color: '#808080FF'
    rotation: 0
    text_bold: true
    text_content: |2-

      OSPF Area 0
    text_font: sans-serif
    text_italic: false
    text_size: 11
    text_unit: pt
    thickness: 1
    type: text
    x1: 40.0
    y1: 40.0
    z_index: 16
smart_annotations: []
nodes:
  - boot_disk_size: null
    configuration:
      - name: ios_config.txt
        content: "Building configuration...\n\nCurrent configuration : 3859 bytes\n\
          !\n! Last configuration change at 04:20:57 UTC Fri Feb 27 2026\n!\nversion\
          \ 17.15\nservice timestamps debug datetime msec\nservice timestamps log\
          \ datetime msec\n!\nhostname R1\n!\nboot-start-marker\nboot-end-marker\n\
          !\n!\nno logging console\nno aaa new-model\n!\n!\n!\n!\n!\n!\n!\n!\n!\n\
          !\n!\n!\n!\nip domain name automation.com\nip cef\nlogin on-success log\n\
          no ipv6 cef\n!\n!\n!\n!\n!\n!\n!\n!\n!\n!\ncrypto pki trustpoint TP-self-signed-131184641\n\
          \ enrollment selfsigned\n subject-name cn=IOS-Self-Signed-Certificate-131184641\n\
          \ revocation-check none\n rsakeypair TP-self-signed-131184641\n hash sha512\n\
          !\n!\ncrypto pki certificate chain TP-self-signed-131184641\n certificate\
          \ self-signed 01\n  3082032E 30820216 A0030201 02020101 300D0609 2A864886\
          \ F70D0101 0D050030\n  30312E30 2C060355 04030C25 494F532D 53656C66 2D536967\
          \ 6E65642D 43657274\n  69666963 6174652D 31333131 38343634 31301E17 0D323530\
          \ 36323330 30343435\n  305A170D 33353036 32333030 34343530 5A303031 2E302C06\
          \ 03550403 0C25494F\n  532D5365 6C662D53 69676E65 642D4365 72746966 69636174\
          \ 652D3133 31313834\n  36343130 82012230 0D06092A 864886F7 0D010101 05000382\
          \ 010F0030 82010A02\n  82010100 A234D723 702749F5 F8E53D25 98873D79 8428C42C\
          \ 91EDA4B2 0BB673B5\n  B68C7217 567195D5 94DA7D18 608B2A93 CEDBBD90 04669880\
          \ 9E77B704 ABB54B1C\n  6DFF4D76 75CB1558 3A3A7721 20C9B3D2 B03D2E91 44566592\
          \ 4986241B 16580F83\n  82C97C13 8BFE2576 FA00E9E8 7B1ED44C A88136DF 05E88E66\
          \ 482C80C0 E53FDB11\n  03361FBF 151BEAA3 8B202F69 4472151B B2CD8D7D 3BEE7C50\
          \ AFFB7476 1D4EE798\n  A8239474 7E2A3777 F66173EE 738887B3 26C0BFE7 75D58C3E\
          \ 2900C662 0ED38F69\n  7D2C0B8B B61C5489 E2E7DAB1 E5784C8D FD43E560 5A4307A7\
          \ 2A71634F 1E78EA0D\n  5EC5A2FA E1A65019 C52A0932 0A63774B 60A8ED3A 69ECCFCB\
          \ 0A885E5A 68809DDE\n  0CF27129 02030100 01A35330 51301D06 03551D0E 04160414\
          \ 82C7438A 1689C7DB\n  90930BD0 283FF675 E9140675 301F0603 551D2304 18301680\
          \ 1482C743 8A1689C7\n  DB90930B D0283FF6 75E91406 75300F06 03551D13 0101FF04\
          \ 05300301 01FF300D\n  06092A86 4886F70D 01010D05 00038201 01002F22 7EF02E19\
          \ 2FA75482 389F4898\n  6C2D252A 375FEEF7 2154786E 6A46D2CB 738D0B54 8F69EF94\
          \ 8809D741 91DEE843\n  01BDF57F EA1656CA 3F89B1F2 24F1AE2D BF4281B6 076E9F1F\
          \ 9F64B4D7 AEEA7401\n  E409E4C7 8903C23B FE853C1B 32D606AA 5EF81E71 F1BE537E\
          \ 6F72025C 06DF2125\n  2C3FD98A DBC0F811 68BD4B62 F1D0DF5E C98CE321 BAEF6731\
          \ 27EA8EB7 7C2BD7CB\n  B85D9EB4 BDD394B3 184B4F59 382D62AE A6864B4C 34685D9E\
          \ 171E807F 84D96864\n  707AA9BC 13C2D432 B43282CD 3EC46F61 F8113C4F B42138C9\
          \ 19AF23DE 64B39DCC\n  D766DC78 37EAADD0 850881F7 8D6D2620 672F211B E4071E0F\
          \ D4662229 53ACF5D3\n  C72322D6 4D39E743 77CD162F 7D982521 3DD8\n  \tquit\n\
          !\n!\nmemory free low-watermark processor 80093\n!\n!\nspanning-tree mode\
          \ rapid-pvst\n!\nenable secret 9 $9$JK6RK9H89Nni3E$yOGLHxzLv9oSlp5TpDTa1bmdUFoBUk97qNI9xfpvk/k\n\
          !\nusername admin privilege 15 secret 9 $9$dvgyWwREx0CpDE$p52RX0Am/CO5.jpi4.zgNX6Y4LbI1hWm7nDP5XXLVg2\n\
          !\n!\n!\n!\n!\n!\n!\n!\n!\n!\n!\n!\n!\n!\n!\n!\n!\n!\n!\n!\n!\ninterface\
          \ Loopback0\n ip address 192.168.255.1 255.255.255.255\n!\ninterface Ethernet0/0\n\
          \ ip address 192.168.200.254 255.255.255.0\n!\ninterface Ethernet0/1\n ip\
          \ address 192.168.216.200 255.255.255.0\n!\ninterface Ethernet0/2\n ip address\
          \ 192.168.1.1 255.255.255.252\n!\ninterface Ethernet0/3\n no ip address\n\
          \ shutdown\n!\ninterface Ethernet1/0\n no ip address\n shutdown\n!\ninterface\
          \ Ethernet1/1\n no ip address\n shutdown\n!\ninterface Ethernet1/2\n no\
          \ ip address\n shutdown\n!\ninterface Ethernet1/3\n no ip address\n shutdown\n\
          !\nrouter ospf 1\n network 192.168.1.0 0.0.0.3 area 0\n network 192.168.200.0\
          \ 0.0.0.255 area 0\n network 192.168.216.0 0.0.0.255 area 0\n network 192.168.255.1\
          \ 0.0.0.0 area 0\n!\nip forward-protocol nd\n!\n!\nip http server\nip http\
          \ secure-server\nip route 0.0.0.0 0.0.0.0 192.168.216.2\nip ssh bulk-mode\
          \ 131072\nno logging btrace\n!\n!\n!\ncontrol-plane\n!\n!\n!\nline con 0\n\
          \ exec-timeout 0 0\n logging synchronous\nline aux 0\nline vty 0 4\n exec-timeout\
          \ 0 0\n login local\n transport input ssh\n!\n!\n!\n!\nend"
    cpu_limit: null
    cpus: null
    data_volume: null
    hide_links: false
    id: n0
    image_definition: null
    label: R1
    node_definition: iol-xe
    parameters: {}
    ram: null
    tags: []
    x: 200
    y: 40
    interfaces:
      - id: i0
        label: Loopback0
        mac_address: null
        type: loopback
      - id: i1
        label: Ethernet0/0
        mac_address: null
        slot: 0
        type: physical
      - id: i2
        label: Ethernet0/1
        mac_address: null
        slot: 1
        type: physical
      - id: i3
        label: Ethernet0/2
        mac_address: null
        slot: 2
        type: physical
      - id: i4
        label: Ethernet0/3
        mac_address: null
        slot: 3
        type: physical
      - id: i5
        label: Ethernet1/0
        mac_address: null
        slot: 4
        type: physical
      - id: i6
        label: Ethernet1/1
        mac_address: null
        slot: 5
        type: physical
      - id: i7
        label: Ethernet1/2
        mac_address: null
        slot: 6
        type: physical
      - id: i8
        label: Ethernet1/3
        mac_address: null
        slot: 7
        type: physical
  - boot_disk_size: null
    configuration:
      - name: default
        content: System Bridge
    cpu_limit: null
    cpus: null
    data_volume: null
    hide_links: false
    id: n1
    image_definition: null
    label: Internet
    node_definition: external_connector
    parameters: {}
    ram: null
    tags: []
    x: 200
    y: -120
    interfaces:
      - id: i0
        label: port
        mac_address: null
        slot: 0
        type: physical
  - boot_disk_size: null
    configuration:
      - name: ios_config.txt
        content: "Building configuration...\n\nCurrent configuration : 3877 bytes\n\
          !\n! Last configuration change at 04:20:58 UTC Fri Feb 27 2026\n!\nversion\
          \ 17.15\nservice timestamps debug datetime msec\nservice timestamps log\
          \ datetime msec\n!\nhostname SW2\n!\nboot-start-marker\nboot-end-marker\n\
          !\n!\nno logging console\nno aaa new-model\n!\n!\n!\n!\n!\n!\n!\n!\n!\n\
          !\n!\n!\n!\nip audit notify log\nip audit po max-events 100\nip host webserver.com\
          \ 192.168.200.1\nip domain name automation.com\nip cef\nlogin on-success\
          \ log\nno ipv6 cef\n!\n!\n!\n!\n!\n!\n!\nvtp mode transparent\n!\ncrypto\
          \ pki trustpoint TP-self-signed-131184643\n enrollment selfsigned\n subject-name\
          \ cn=IOS-Self-Signed-Certificate-131184643\n revocation-check none\n rsakeypair\
          \ TP-self-signed-131184643\n hash sha512\n!\n!\ncrypto pki certificate chain\
          \ TP-self-signed-131184643\n certificate self-signed 01\n  3082032E 30820216\
          \ A0030201 02020101 300D0609 2A864886 F70D0101 0D050030\n  30312E30 2C060355\
          \ 04030C25 494F532D 53656C66 2D536967 6E65642D 43657274\n  69666963 6174652D\
          \ 31333131 38343634 33301E17 0D323530 39303830 31343432\n  385A170D 33353039\
          \ 30383031 34343238 5A303031 2E302C06 03550403 0C25494F\n  532D5365 6C662D53\
          \ 69676E65 642D4365 72746966 69636174 652D3133 31313834\n  36343330 82012230\
          \ 0D06092A 864886F7 0D010101 05000382 010F0030 82010A02\n  82010100 C03362CF\
          \ D4B67C20 90E19F7E 75FD80E8 FB215C4B 0C09E38C 99E262FF\n  2755B898 20479497\
          \ 05BFD10D D60B05D4 5DFAC675 93A1B255 D51BD75F 728A55E5\n  6B033F53 AED81E87\
          \ A203CD19 060B0320 4A390300 34AB2DB2 70D5A677 13CDC7A2\n  633AEB84 7FCCFA33\
          \ AF14443E 3767A2F0 62EC5445 48039C94 76193CDB 3144CC17\n  892D32C8 80960D5B\
          \ 755785D6 B0C82D25 FFF4E736 120591A0 F27BD8FA 8F4CADF6\n  6125E26E 619EAA76\
          \ 93A169DE 54CDFB43 3A7CC80A 3903519A 5D018D3F 22A922EF\n  1458045F 4DA3509F\
          \ 2242296C F48BFFCA 4F151FD5 379E86BE 5FD2F7AA A857B590\n  89139005 000607D4\
          \ 5E6C55A8 85CACBCA 29C53307 1A0EB98D C58923BC FAD4D27E\n  B7156AED 02030100\
          \ 01A35330 51301D06 03551D0E 04160414 356B803B BDB96AC2\n  0CB6A2B2 C0C791A5\
          \ C199C7CD 301F0603 551D2304 18301680 14356B80 3BBDB96A\n  C20CB6A2 B2C0C791\
          \ A5C199C7 CD300F06 03551D13 0101FF04 05300301 01FF300D\n  06092A86 4886F70D\
          \ 01010D05 00038201 0100B1C8 31A91109 1448E664 7C177F10\n  BCC4C448 E77F5852\
          \ 7F60EF3C A1864508 2753BF9D 95BE2029 7C2F9F23 62A1DDC2\n  8EEC5E46 CFEA4134\
          \ 833C34E5 D30FF202 EEEF866A F5303034 E54D9E1A B956B617\n  BF81A1D8 9B39C927\
          \ 082B0D2C 20512AAD 985C982F 04D35283 869D47CF 5D6B0990\n  8F8EEB07 809B24AD\
          \ 3C3C63B4 7DA13A7F 2B315F06 0E8C158F 456D8B45 AC3B81B7\n  917BDC4F E15A4681\
          \ 341713CB 80A2EB75 3C476AFA 0ACCD358 69EF5FBD F0133456\n  47246B5E 0F7FE4A2\
          \ 0858FEB0 90146F80 10BDF5FF DC51A42F 2FD1F09F 6855497B\n  FAB8AC73 5BF7DCBA\
          \ 08323554 76475391 00F9BD2F 881D9EE9 A91BABE6 E15D667E\n  D09936FD A8280BB9\
          \ F2B17240 DC557C77 C46B\n  \tquit\n!\n!\nmemory free low-watermark processor\
          \ 79593\n!\n!\nspanning-tree mode rapid-pvst\nspanning-tree extend system-id\n\
          enable secret 9 $9$.0QYTF1UwSNjZ.$.8vXUzkmRcFzekAiWinDZZvRF32jTPlbFLCdZ/xtARk\n\
          !\nusername admin privilege 15 secret 9 $9$pzZgbKQHD0nrZk$W9mE1MbT6ZIkJm9hCYa9LNzYN5ypCOM56d0HgsxtueI\n\
          !\nvlan internal allocation policy ascending\n!\nvlan 10\n name data\n!\n\
          !\n!\n!\n!\ninterface Loopback0\n ip address 192.168.255.2 255.255.255.255\n\
          !\ninterface Ethernet0/0\n no switchport\n ip address 192.168.1.2 255.255.255.252\n\
          !\ninterface Ethernet0/1\n shutdown\n!\ninterface Ethernet0/2\n switchport\
          \ trunk encapsulation dot1q\n switchport trunk native vlan 999\n switchport\
          \ mode trunk\n!\ninterface Ethernet0/3\n shutdown\n!\ninterface Vlan10\n\
          \ ip address 192.168.10.254 255.255.255.0\n!\nrouter ospf 1\n network 192.168.1.0\
          \ 0.0.0.3 area 0\n network 192.168.10.0 0.0.0.255 area 0\n network 192.168.255.2\
          \ 0.0.0.0 area 0\n!\nip forward-protocol nd\n!\n!\nip http server\nip http\
          \ secure-server\nip dns server\nip ssh bulk-mode 131072\nip route 0.0.0.0\
          \ 0.0.0.0 192.168.216.2\n!\nno logging btrace\n!\n!\n!\ncontrol-plane\n\
          !\n!\n!\nline con 0\n exec-timeout 0 0\n logging synchronous\nline aux 0\n\
          line vty 0 4\n exec-timeout 0 0\n login local\n transport input ssh\n!\n\
          !\nend"
    cpu_limit: null
    cpus: null
    data_volume: null
    hide_links: false
    id: n2
    image_definition: null
    label: SW2
    node_definition: ioll2-xe
    parameters: {}
    ram: null
    tags: []
    x: -40
    y: 40
    interfaces:
      - id: i0
        label: Loopback0
        mac_address: null
        type: loopback
      - id: i1
        label: Ethernet0/0
        mac_address: null
        slot: 0
        type: physical
      - id: i2
        label: Ethernet0/1
        mac_address: null
        slot: 1
        type: physical
      - id: i3
        label: Ethernet0/2
        mac_address: null
        slot: 2
        type: physical
      - id: i4
        label: Ethernet0/3
        mac_address: null
        slot: 3
        type: physical
  - boot_disk_size: null
    configuration:
      - name: ios_config.txt
        content: "Building configuration...\n\nCurrent configuration : 3662 bytes\n\
          !\n! Last configuration change at 04:20:58 UTC Fri Feb 27 2026\n!\nversion\
          \ 17.15\nservice timestamps debug datetime msec\nservice timestamps log\
          \ datetime msec\n!\nhostname SW1\n!\nboot-start-marker\nboot-end-marker\n\
          !\n!\nno logging console\nno aaa new-model\n!\n!\n!\n!\n!\n!\n!\n!\n!\n\
          !\n!\n!\n!\nip audit notify log\nip audit po max-events 100\nip domain name\
          \ automation.com\nip cef\nlogin on-success log\nno ipv6 cef\n!\n!\n!\n!\n\
          !\n!\n!\nvtp mode transparent\n!\ncrypto pki trustpoint TP-self-signed-131184645\n\
          \ enrollment selfsigned\n subject-name cn=IOS-Self-Signed-Certificate-131184645\n\
          \ revocation-check none\n rsakeypair TP-self-signed-131184645\n hash sha512\n\
          !\n!\ncrypto pki certificate chain TP-self-signed-131184645\n certificate\
          \ self-signed 01\n  3082032E 30820216 A0030201 02020101 300D0609 2A864886\
          \ F70D0101 0D050030\n  30312E30 2C060355 04030C25 494F532D 53656C66 2D536967\
          \ 6E65642D 43657274\n  69666963 6174652D 31333131 38343634 35301E17 0D323530\
          \ 39303931 38323433\n  325A170D 33353039 30393138 32343332 5A303031 2E302C06\
          \ 03550403 0C25494F\n  532D5365 6C662D53 69676E65 642D4365 72746966 69636174\
          \ 652D3133 31313834\n  36343530 82012230 0D06092A 864886F7 0D010101 05000382\
          \ 010F0030 82010A02\n  82010100 D77F2532 EF60A657 09035538 286BCD0F 1E476672\
          \ B9BEE01D B2CE8F7F\n  AF0DE4D0 543E5E3A 90051500 DBF1FDC8 57A82470 19C681AC\
          \ B5031474 0EF7351E\n  F2BE432C 4D7ADFA6 97BFA184 58D9B509 3E5EA117 DF9DD863\
          \ D35F5E3B A78F65D1\n  A3F28552 29E0896B 7CCAC116 18245FDB 02524075 C67C419B\
          \ 6E7DFDF0 106BF3FE\n  68085AD0 416DDA80 F9291BFA 8C745D8F CA38CAAF 864BA6AB\
          \ D27154F9 B0D03D4B\n  882F48B1 42E122B1 0DB09078 B927B739 EA8E9EBD FF1DADAA\
          \ 59EFBB67 3582EFD1\n  89153ABC CCCBF586 0280C47D D7C100C3 DC3291F5 D62837F5\
          \ C13817E6 E25CED13\n  D5D4979E 1989E523 FC268E0B E7B6EA1D 1ABBCABB 83975237\
          \ AAA4052B CE415665\n  915ABB37 02030100 01A35330 51301D06 03551D0E 04160414\
          \ 9B20A084 2BB38645\n  E905411E F0122B83 DFC6A638 301F0603 551D2304 18301680\
          \ 149B20A0 842BB386\n  45E90541 1EF0122B 83DFC6A6 38300F06 03551D13 0101FF04\
          \ 05300301 01FF300D\n  06092A86 4886F70D 01010D05 00038201 01001B26 F4D6A936\
          \ E98CFD69 8F7F77EB\n  4A8E8303 39C1F3C1 9A04FF8B 6D6D23AE 663E6CA9 CA3073FE\
          \ 4EB0E73C 90F09F28\n  4898262C B1953685 B6FEF1D5 C59C21FB B94DC1A6 0108FECE\
          \ 48D7D3FB 0E580463\n  4659FE6D AEFF4A96 303BD734 3D4F22EB 03948A56 1A64B05F\
          \ 2FBC1DFA 7E37174F\n  1F470DF0 720311E2 D30FFE03 4BE07740 CDAFF72C 02E79248\
          \ 2AAA9F80 C4D913BA\n  37E9D503 C67D918C 6AA6EDF2 00EA9EC0 0832720C 93BB88C5\
          \ 5C8463AC 9DA3FAD8\n  C58ECFCB 9B4191A2 27380B2E 12F646C7 39935BBA BFFD6BB7\
          \ BE525698 0FAC08C7\n  649DB90F 842DA61D F265D411 E7B41E47 C53B9720 FC574BF1\
          \ 95D0A754 DC3A6263\n  B9F49604 8943EA5B D2BC1A51 B3C19C2C 3BFA\n  \tquit\n\
          !\n!\nmemory free low-watermark processor 79593\n!\n!\nspanning-tree mode\
          \ rapid-pvst\nspanning-tree extend system-id\nenable secret 9 $9$i4QvCgENHOnKUk$D1mj91BjVjEn/X.yqKOQklEF6MqR8QZX92CMtMbEpjQ\n\
          !\nusername admin privilege 15 secret 9 $9$7SjiRPFjW8R0R.$HMXjLB6W4Ae7o1FC6nmrcl9sdfVfh5TBFIB6UITTVM.\n\
          !\nvlan internal allocation policy ascending\n!\nvlan 10\n name data\n!\n\
          vlan 100\n name mgmt\n!\n!\n!\n!\n!\ninterface Ethernet0/0\n switchport\
          \ trunk encapsulation dot1q\n switchport trunk native vlan 999\n switchport\
          \ mode trunk\n!\ninterface Ethernet0/1\n shutdown\n!\ninterface Ethernet0/2\n\
          \ description Data VLAN\n switchport access vlan 10\n switchport mode access\n\
          !\ninterface Ethernet0/3\n switchport mode access\n shutdown\n!\ninterface\
          \ Vlan100\n ip address 192.168.100.254 255.255.255.0\n!\nip forward-protocol\
          \ nd\n!\n!\nip http server\nip http secure-server\nip ssh bulk-mode 131072\n\
          !\nno logging btrace\n!\n!\n!\ncontrol-plane\n!\n!\n!\nline con 0\n exec-timeout\
          \ 0 0\n logging synchronous\nline aux 0\nline vty 0 4\n exec-timeout 0 0\n\
          \ login local\n transport input ssh\n!\n!\nend"
    cpu_limit: null
    cpus: null
    data_volume: null
    hide_links: false
    id: n3
    image_definition: null
    label: SW1
    node_definition: ioll2-xe
    parameters: {}
    ram: null
    tags: []
    x: -240
    y: 40
    interfaces:
      - id: i0
        label: Loopback0
        mac_address: null
        type: loopback
      - id: i1
        label: Ethernet0/0
        mac_address: null
        slot: 0
        type: physical
      - id: i2
        label: Ethernet0/1
        mac_address: null
        slot: 1
        type: physical
      - id: i3
        label: Ethernet0/2
        mac_address: null
        slot: 2
        type: physical
      - id: i4
        label: Ethernet0/3
        mac_address: null
        slot: 3
        type: physical
  - boot_disk_size: null
    configuration:
      - name: user-data
        content: |-
          #cloud-config
          hostname: client
          manage_etc_hosts: True
          system_info:
            default_user:
              name: cisco
          password: cisco
          chpasswd: { expire: False }
          ssh_pwauth: True
          ssh_authorized_keys:
            - your-ssh-pubkey-line-goes-here

          write_files:
            - path: /usr/local/share/ca-certificates/webserver.crt
              permissions: '0644'
              content: |
                -----BEGIN CERTIFICATE-----
                MIIDqzCCApOgAwIBAgIUWHGrnu5LP/rwY1nI5Vr++jg38gEwDQYJKoZIhvcNAQEL
                BQAwZDELMAkGA1UEBhMCVVMxDjAMBgNVBAgMBVN0YXRlMQ0wCwYDVQQHDARDaXR5
                MREwDwYDVQQKDAhDSVNDT05FVDELMAkGA1UECwwCSVQxFjAUBgNVBAMMDXdlYnNl
                cnZlci5jb20wIBcNMjYwMjI2MjIzNjE1WhgPMjEyNjAyMDIyMjM2MTVaMGQxCzAJ
                BgNVBAYTAlVTMQ4wDAYDVQQIDAVTdGF0ZTENMAsGA1UEBwwEQ2l0eTERMA8GA1UE
                CgwIQ0lTQ09ORVQxCzAJBgNVBAsMAklUMRYwFAYDVQQDDA13ZWJzZXJ2ZXIuY29t
                MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA89RcpvlDTylWv8OmNTsD
                F0Nb5XVNiMElFBzVB8yCR9Db/zPm30k3Vit8AxrPjmUFxKVmF9PR99RdVxg8xVkF
                XQq2Jgx/CuHt+B2sitQMFFO+xSU9OzEOiyuIj26OngdXFRAMjmWyRY7ZXN5A3VgX
                Gs/U1snXveL0/n27fuQo075Onp0Fmtz8iV5xnyJ4rXZrLtpSm3m80c7W4k9loiEN
                RheHntydo3z/KdneSaT9bYR0NbuigJ2GMLoagWYS15DmAyme24aEsfI/zhvcq1jC
                JSpCeQdIWDYvg2reQND2wU8FnomqlW6nMB5YUXEBdWpcDuOfNQ4DUQnpZn1ruPRx
                8QIDAQABo1MwUTAdBgNVHQ4EFgQUhpP2nD5ee9KOOuTSCkFA3/GLJrgwHwYDVR0j
                BBgwFoAUhpP2nD5ee9KOOuTSCkFA3/GLJrgwDwYDVR0TAQH/BAUwAwEB/zANBgkq
                hkiG9w0BAQsFAAOCAQEAaqQKC8oUCbvjL64wc0tMJ2JgteLJvKfgI1MZNn89JKB+
                4mpGdcSh1PPlG794pEOO4mk0fbYu71BS0KPtIZsov9Dv2FOQbEeHP6s0fnP/xtXN
                IKOWqgcEGPL2gq2gE1RJgGqmjIAfv9L3sT7qwV2/ygeqyO4DFIIxAuoxeG5p6S4z
                6HaZxdoYGnITl/kTd44Y92FhrqhFD5rlRnpCTMfevrCP0+Q2G8+KNzXd+iB3HR3e
                kuxQo+qZUfykSBChrHKWWohNcNhrZ5neh+CVuJMgtZZuP/ADv9sS0bn7rZlBKgvt
                KhxJ+g/el4Ngzlpj+wPxCrQixqUJXI+R3iYfnyrlOg==
                -----END CERTIFICATE-----

          runcmd:
            - echo "[*] Installing custom MOTD..."

            - chmod -x /etc/update-motd.d/*

            - |
              cat <<'EOF' > /etc/update-motd.d/00-custom
              #!/bin/sh
              cat <<EOT
              ===============================================

              Client Node

              🌐 FREE courses, tools, and automation labs
              🔗 Visit: https://www.cisconetsolutions.com

              CISCONET Training Solutions

              ===============================================
              EOT
              EOF

            - chmod +x /etc/update-motd.d/00-custom

            - rm -f /run/motd.dynamic /var/run/motd.dynamic 2>/dev/null || true

            - update-ca-certificates
      - name: network-config
        content: |-
          #network-config
          version: 2
          ethernets:
            ens2:
              dhcp4: false
              addresses:
                - 192.168.10.1/24
              routes:
                - to: default
                  via: 192.168.10.254
              nameservers:
                addresses:
                  - 192.168.255.2
    cpu_limit: null
    cpus: null
    data_volume: null
    hide_links: false
    id: n4
    image_definition: null
    label: client
    node_definition: ubuntu
    parameters: {}
    ram: null
    tags: []
    x: -440
    y: 40
    interfaces:
      - id: i0
        label: ens2
        mac_address: null
        slot: 0
        type: physical
  - boot_disk_size: null
    configuration:
      - name: user-data
        content: |-
          #cloud-config
          hostname: webserver
          fqdn: webserver.com
          manage_etc_hosts: True

          system_info:
            default_user:
              name: cisco
          password: cisco
          chpasswd: { expire: False }
          ssh_pwauth: True
          ssh_authorized_keys:
            - your-ssh-pubkey-line-goes-here

          write_files:
            - path: /var/www/html/index.html
              permissions: '0644'
              content: |
                <!DOCTYPE html>
                <html lang="en">
                <head>
                    <meta charset="UTF-8">
                    <title>CISCONET Training Solutions</title>
                    <style>
                        body { font-family: Arial, sans-serif; margin: 40px; background-color: #f8f9fa; color: #333; }
                        h1 { color: #0055a5; }
                        a { color: #007bff; text-decoration: none; }
                        a:hover { text-decoration: underline; }
                        .features, .courses { margin-top: 20px; }
                        .features li, .courses li { margin-bottom: 8px; }
                        .courses span { margin: 0 5px; color: #555; }
                    </style>
                </head>
                <body>
                    <h1>CISCONET Training Solutions</h1>
                    <p>Website: <a href="https://www.cisconetsolutions.com" target="_blank">https://www.cisconetsolutions.com</a></p>
                    <div class="features">
                        <ul>
                            <li>Free Courses</li>
                            <li>Study Tools</li>
                            <li>Labs</li>
                        </ul>
                    </div>
                    <div class="courses">
                        <p>CCST<span>•</span>CCNA<span>•</span>CCNP<span>•</span>IT/Networking</p>
                    </div>
                </body>
                </html>

            - path: /etc/ssl/private/webserver.key
              permissions: '0600'
              content: |
                -----BEGIN PRIVATE KEY-----
                MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDz1Fym+UNPKVa/
                w6Y1OwMXQ1vldU2IwSUUHNUHzIJH0Nv/M+bfSTdWK3wDGs+OZQXEpWYX09H31F1X
                GDzFWQVdCrYmDH8K4e34HayK1AwUU77FJT07MQ6LK4iPbo6eB1cVEAyOZbJFjtlc
                3kDdWBcaz9TWyde94vT+fbt+5CjTvk6enQWa3PyJXnGfInitdmsu2lKbebzRztbi
                T2WiIQ1GF4ee3J2jfP8p2d5JpP1thHQ1u6KAnYYwuhqBZhLXkOYDKZ7bhoSx8j/O
                G9yrWMIlKkJ5B0hYNi+Dat5A0PbBTwWeiaqVbqcwHlhRcQF1alwO4581DgNRCelm
                fWu49HHxAgMBAAECggEAb+U/ZcMTQBNVA6jqMBh2SSk41Xr5C26zsOCwZKVWDlYL
                d7jeVQ7ZDbrj7NrTcGHs/Tr4OKwU+fojobH2RYyeWP3u7FQkwx4+onQfuBAqwPNT
                o059JJpVNcnTIBuY6G2u6XQVhw2le6VcG/HE668e30eMQcucLcCnNNkHf+p9z/lq
                8Q65KHu+KLpHmp9D0BzmdwLeoTGgsQVsz09v7M7lvvgSnfqzzuP7I83yY3lVsq7Q
                XUCjBH1oQAv53PhmdAkjvQXV+3ZCpImMLxIGP6ol3NjAyBDTEpPPUwD2a75HNY/B
                PZnOHGTzBuTSs9VFBa66TUOsdl/FvzGQmjVs/B1ytwKBgQD8c0OCAk6XfmKlHk2r
                xXFRgNAVivCJlZYVd7gE7+yhnMetIPpYsN+ayLtxXHwCby3yOPTUmsvQ7jzcmdhl
                f6BVSWVO9FYmUdNlfGjToiy/A2dKEiPxxXn5TF0mi4UJGzQCxI9iFRyPN/hOGmng
                XYGOt+Pyjn4ljmfYzEEyTCvimwKBgQD3QhEJnCYrXLhBBg1jXkC4qW2N5+tOHmy9
                PUE471SPokP+42K8troPWfjstCHz0EV3bYVmlVTH6xDSdYelp07otj8dCaFdBy6j
                +U0nTF6+NOvCIJMR1gkfOu/UI/ZnwOsYUvG+dBAhmP7GDNwt7O48sm38ovwnXPJ2
                KyVjtAhwYwKBgGpBGWjfD7UzvNFCr+5cbBWh4fMvR46hJ0ph2VI6qZ5cHq7/8l7i
                EztSwZI1GvzrTqtkzaeuf5qwq20uU6Zk0VcUTU+uB5SZXCCa/IQW/j5ncFH80KQy
                OeRz/8D5eEUc7gc8NB1URXECXcCB3Y5RzPYE8CxnTTEBfzQAxHAnH1GBAoGBAOsq
                jwHQ3gzH9wcBNqKX9n6rxmL9fbOjBFFIfUwldQvXjUxUAIj0UipfrH2VJeW65Rcd
                t49F4Ij0bd99oTJQ2qBDFewMSMkuF5Ilftgtrr7BnqnYSYjhRXPKnmfqfGVZ+z/7
                Q6mcwerylP7RJGkZu81G940dhy35HTJ+/uTBSnV5AoGBAJVXw63hDJlfUB5hhoHd
                f3Vp4KtgLrP65ZYINNqnv49NIeddj8X2/ryA0n08oT5baFwQjTJ6t4stTpxxIZdE
                VABM/wEp6gADYF/MzoGI2OzXqkq4F3VsRJ1OPV5PPtoXTL7mfzEgMu1zRvnSPMHV
                T8EWJLTsuKhxCZScC5kFvFEi
                -----END PRIVATE KEY-----

            - path: /etc/ssl/certs/webserver.crt
              permissions: '0644'
              content: |
                -----BEGIN CERTIFICATE-----
                MIIDqzCCApOgAwIBAgIUWHGrnu5LP/rwY1nI5Vr++jg38gEwDQYJKoZIhvcNAQEL
                BQAwZDELMAkGA1UEBhMCVVMxDjAMBgNVBAgMBVN0YXRlMQ0wCwYDVQQHDARDaXR5
                MREwDwYDVQQKDAhDSVNDT05FVDELMAkGA1UECwwCSVQxFjAUBgNVBAMMDXdlYnNl
                cnZlci5jb20wIBcNMjYwMjI2MjIzNjE1WhgPMjEyNjAyMDIyMjM2MTVaMGQxCzAJ
                BgNVBAYTAlVTMQ4wDAYDVQQIDAVTdGF0ZTENMAsGA1UEBwwEQ2l0eTERMA8GA1UE
                CgwIQ0lTQ09ORVQxCzAJBgNVBAsMAklUMRYwFAYDVQQDDA13ZWJzZXJ2ZXIuY29t
                MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA89RcpvlDTylWv8OmNTsD
                F0Nb5XVNiMElFBzVB8yCR9Db/zPm30k3Vit8AxrPjmUFxKVmF9PR99RdVxg8xVkF
                XQq2Jgx/CuHt+B2sitQMFFO+xSU9OzEOiyuIj26OngdXFRAMjmWyRY7ZXN5A3VgX
                Gs/U1snXveL0/n27fuQo075Onp0Fmtz8iV5xnyJ4rXZrLtpSm3m80c7W4k9loiEN
                RheHntydo3z/KdneSaT9bYR0NbuigJ2GMLoagWYS15DmAyme24aEsfI/zhvcq1jC
                JSpCeQdIWDYvg2reQND2wU8FnomqlW6nMB5YUXEBdWpcDuOfNQ4DUQnpZn1ruPRx
                8QIDAQABo1MwUTAdBgNVHQ4EFgQUhpP2nD5ee9KOOuTSCkFA3/GLJrgwHwYDVR0j
                BBgwFoAUhpP2nD5ee9KOOuTSCkFA3/GLJrgwDwYDVR0TAQH/BAUwAwEB/zANBgkq
                hkiG9w0BAQsFAAOCAQEAaqQKC8oUCbvjL64wc0tMJ2JgteLJvKfgI1MZNn89JKB+
                4mpGdcSh1PPlG794pEOO4mk0fbYu71BS0KPtIZsov9Dv2FOQbEeHP6s0fnP/xtXN
                IKOWqgcEGPL2gq2gE1RJgGqmjIAfv9L3sT7qwV2/ygeqyO4DFIIxAuoxeG5p6S4z
                6HaZxdoYGnITl/kTd44Y92FhrqhFD5rlRnpCTMfevrCP0+Q2G8+KNzXd+iB3HR3e
                kuxQo+qZUfykSBChrHKWWohNcNhrZ5neh+CVuJMgtZZuP/ADv9sS0bn7rZlBKgvt
                KhxJ+g/el4Ngzlpj+wPxCrQixqUJXI+R3iYfnyrlOg==
                -----END CERTIFICATE-----

          runcmd:
            - apt update
            - DEBIAN_FRONTEND=noninteractive apt install -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" nginx

            - echo 'server {
                  listen 80;
                  server_name webserver;
                  return 301 https://$host$request_uri;
                }

                server {
                  listen 443 ssl;
                  server_name webserver;

                  ssl_certificate /etc/ssl/certs/webserver.crt;
                  ssl_certificate_key /etc/ssl/private/webserver.key;

                  root /var/www/html;
                  index index.html;

                  location / {
                      try_files $uri $uri/ =404;
                  }
                }' > /etc/nginx/sites-available/default

            - ln -sf /etc/nginx/sites-available/default /etc/nginx/sites-enabled/default

            - ufw deny https
            - ufw allow http
            - ufw allow 8000
            - ufw allow ssh
            - ufw --force enable

            - systemctl enable nginx
            - systemctl restart nginx
      - name: network-config
        content: |-
          #network-config
          version: 2
          ethernets:
            ens2:
              dhcp4: false
              addresses:
                - 192.168.200.1/24
              routes:
                - to: default
                  via: 192.168.200.254
              nameservers:
                addresses:
                  - 8.8.8.8
    cpu_limit: null
    cpus: null
    data_volume: null
    hide_links: false
    id: n5
    image_definition: null
    label: webserver.com
    node_definition: ubuntu
    parameters: {}
    ram: null
    tags: []
    x: 400
    y: 40
    interfaces:
      - id: i0
        label: ens2
        mac_address: null
        slot: 0
        type: physical
links:
  - id: l0
    n1: n2
    n2: n0
    i1: i1
    i2: i3
    conditioning: {}
    label: SW2-Ethernet0/0<->R1-Ethernet0/2
  - id: l1
    n1: n3
    n2: n2
    i1: i1
    i2: i3
    conditioning: {}
    label: SW1-Ethernet0/0<->SW2-Ethernet0/2
  - id: l2
    n1: n1
    n2: n0
    i1: i0
    i2: i2
    conditioning: {}
    label: Internet-port<->R1-Ethernet0/1
  - id: l3
    n1: n4
    n2: n3
    i1: i0
    i2: i3
    conditioning: {}
    label: client-ens2<->SW1-Ethernet0/2
  - id: l4
    n1: n0
    n2: n5
    i1: i1
    i2: i0
    conditioning: {}
    label: R1-Ethernet0/0<->webserver.com-ens2
lab:
  description: Linux UFW Firewall Rules
  notes: ''
  title: wireshark lab 1
  version: 0.3.0
